home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 October: Technology Seed / ADC Seed CD - October 1999.toast / FireWire / FireWire_2.0_SDK / Source / AVTransport / Interfaces / AVTransportPriv.h < prev   
Encoding:
C/C++ Source or Header  |  1999-04-12  |  4.2 KB  |  139 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        AVTransportPriv.h
  3.  
  4.     Contains:    Private definitions and interfaces for AV transport control
  5.                 driver family.
  6.  
  7.     Written by:    Erik Staats
  8.  
  9.     Copyright:    © 1996-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.     Change History (most recent first):
  12.  
  13.        <FW5>      2/7/97    ES        Added defs for queueing client Apple Events.
  14.        <FW4>    10/22/96    ES        Added driverRefNum and driverOpened and removed
  15.                                     delayedNotificationRef from AVTDriverData record.
  16.        <FW3>     6/20/96    ES        Made this look more like a .i generated interface.
  17.        <FW2>     6/20/96    ES        Filled in contains and written by fields.
  18.        <FW1>     6/20/96    ES        first checked in
  19.  
  20. */
  21.  
  22. #ifndef __AVTRANSPORTPRIV__
  23. #define __AVTRANSPORTPRIV__
  24.  
  25. #ifndef __TYPES__
  26. #include <Types.h>
  27. #endif
  28. #ifndef __APPLEEVENTS__
  29. #include <AppleEvents.h>
  30. #endif
  31. #ifndef __NAMEREGISTRY__
  32. #include <NameRegistry.h>
  33. #endif
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_IMPORT_SUPPORTED
  40. #pragma import on
  41. #endif
  42.  
  43. #if PRAGMA_ALIGN_SUPPORTED
  44. #pragma options align=mac68k
  45. #endif
  46.  
  47. typedef struct AVTClientDataStruct
  48.                                 AVTClientData,
  49.                                 *AVTClientDataPtr;
  50.  
  51. typedef struct AVTDriverDataStruct
  52.                                 AVTDriverData,
  53.                                 *AVTDriverDataPtr;
  54.  
  55. struct AVTFamilyDataStruct
  56. {
  57.     AVTClientDataPtr            pAVTClientList;            // Pointer to list of registered clients.
  58.     AVTDriverDataPtr            pAVTDriverList;            // Pointer to list of installed drivers.
  59.     UInt32                        numAVTDrivers;            // Number of drivers in above list.
  60. };
  61. typedef struct AVTFamilyDataStruct
  62.                                 AVTFamilyData,
  63.                                 *AVTFamilyDataPtr;
  64.  
  65. typedef struct ClientAppleEventDataStruct
  66.                                 ClientAppleEventData,
  67.                                 *ClientAppleEventDataPtr;
  68. struct ClientAppleEventDataStruct
  69. {
  70.     ClientAppleEventDataPtr        pNextClientAppleEventData;    // Link to next client Apple Event.
  71.     AppleEvent                    clientAppleEvent;        // The apple event to send.
  72.     Boolean                        clientAppleEventValid;    // True if above is valid.
  73.  
  74.     AppleEvent                    *reply;                    // Apple Event reply.
  75.     AESendMode                    sendMode;                // Send mode of Apple Event.
  76.     AESendPriority                sendPriority;            // Priority of Apple Event.//zzz how to best implement this wrt SWInts???
  77.     long                        timeOutInTicks;            // Timeout of Apple Event.//zzz how to best implement this wrt SWInts???
  78.     AEIdleUPP                    idleProc;                // Idle proc for Apple Event.
  79.     AEFilterUPP                    filterProc;                // Filter proc for Apple Event.
  80. };
  81.  
  82. struct AVTClientDataStruct
  83. {
  84.     AVTClientDataPtr            pPrevAVTClientData,
  85.                                 pNextAVTClientData;        // Pointer to previous and next client in list.
  86.  
  87.     QHdrPtr                        clientAppleEventQueue;    // Queue of Apple Events to send to client.
  88.  
  89.     AppleEvent                    deviceAddedAppleEvent;    // Apple event for device added notification.
  90.     Boolean                        deviceAddedAppleEventValid;    // True if above event is valid.
  91.  
  92.     AppleEvent                    deviceRemovedAppleEvent;    // Apple event for device removed notification.
  93.     Boolean                        deviceRemovedAppleEventValid;    // True if above event is valid.
  94.  
  95.     AEAddressDesc                clientAEAddress;        // Address of client.
  96.     Boolean                        clientAEAddressValid;    // True if above descriptor is valid.
  97.  
  98.     UInt32                        clientContextData;        // Data for use by client.
  99. };
  100.  
  101. struct AVTDriverDataStruct
  102. {
  103.     AVTDriverDataPtr            pNextAVTDriverData;        // Pointer to next driver in driver list.
  104.     AVTDriverID                    avtDriverID;            // ID referencing this data record.
  105.     DriverRefNum                driverRefNum;            // Device Manager driver ref num.
  106.     Boolean                        driverOpened;            // True if we've opened the driver.
  107.     AVTInterfaceProcPtr            pAVTDriverInterface;    // Pointer to main interface proc
  108.                                                         // in driver.
  109.     Ptr                            pDriverSpecificData;    // Data specific to driver.
  110.     RegEntryID                    deviceRegistryID;        // Name registry ID of AV transport control device
  111.     CFragConnectionID            driverConnID;            // Code fragment connection ID for this driver.
  112.     UInt32                        numConnections;            // Number of connections to this driver.
  113.     Boolean                        deviceDisconnected;        // True if device was disconnected.
  114. };
  115.  
  116.  
  117. ////////////////////////////////////////////////////////////////////////////////
  118. //
  119. // AV transport control driver family private procedures.
  120. //
  121.  
  122. OSStatus    InstallAVTExpert (void);
  123.  
  124. OSStatus    UninstallAVTExpert (void);
  125.  
  126. #if PRAGMA_ALIGN_SUPPORTED
  127. #pragma options align=reset
  128. #endif
  129.  
  130. #if PRAGMA_IMPORT_SUPPORTED
  131. #pragma import off
  132. #endif
  133.  
  134. #ifdef __cplusplus
  135. }
  136. #endif
  137.  
  138. #endif /* __AVTRANSPORTPRIV__ */
  139.